package com.guchenbo.scala.c2

/**
 * @author guchenbo
 * @date 2022/3/15
 */
object FuncDemo {

  def main(args: Array[String]): Unit = {
    //    函数作为返回值
    //    第一种，普通写法
    def func(a: Int): Int => Int = {
      def f(b: Int): Int = {
        a + b
      }

      f
    }

    //    第二种，柯里化写法
    def func2(a: Int)(b: Int): Int = {
      a + b
    }

    println(func(1)(2))
    println(func2(1)(2))

    //    定义一个函数类型变量，作为基值
    val f2: Int => Int = func2(4)
    println(f2(5))
    println(f2(6))
  }
}
